.TH std::swap(std::basic_fstream) 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::swap(std::basic_fstream) \- std::swap(std::basic_fstream)

.SH Synopsis
   template< class CharT, class Traits >
   void swap( basic_fstream<CharT, Traits>& lhs, basic_fstream<CharT, Traits>& rhs );

   Specializes the std::swap algorithm for std::basic_fstream. Exchanges the state of
   lhs with that of rhs. Effectively calls lhs.swap(rhs).

.SH Parameters

   lhs, rhs - streams whose state to swap

.SH Return value

   \fI(none)\fP

.SH Exceptions

   May throw implementation-defined exceptions.

.SH Example


// Run this code

 #include <fstream>
 #include <iostream>
 #include <string>

 bool create_stream(std::fstream& fs)
 {
     try
     {
         std::string some_name = "/tmp/test_file.txt";
         std::ios_base::openmode some_flags = fs.trunc; // | other flags

         if (std::fstream ts{some_name, some_flags}; ts.is_open())
         {
             std::swap(ts, fs); // stream objects are not copyable => swap
             return true;
         }
     }
     catch (...)
     {
         std::cout << "Exception!\\n";
     }
     return false;
 }

 int main()
 {
     if (std::fstream fs; create_stream(fs))
     {
         // use fs stream
     }
 }

.SH See also

   swap    swaps two file streams
   \fI(C++11)\fP \fI(public member function)\fP
